define(["jquery", "bootstrap", "backend", "table", "form"], function ($, undefined, Backend, Table, Form) {
  var Controller = {
    index: function () {
      $(document).ready(function () {
        // 定义数据对象
        var tableData = {
          实际开放床数: Array(32).fill("-"),
          初全院执业护士总人数: Array(32).fill("-"),
          末全院执业护士总人数: Array(32).fill("-"),
          初病区执业护士总人数: Array(32).fill("-"),
          末病区执业护士总人数: Array(32).fill("-"),
          岗执业护士上班小时数: Array(32).fill("-"),
          导尿管拔管发生例次数: Array(32).fill("-"),
          胃肠管拔管发生例次数: Array(32).fill("-"),
          中心导管拔管发生例次数: Array(32).fill("-"),
          气管导管拔管发生例次数: Array(32).fill("-"),
          VAP发生例次数: Array(32).fill("-"),
          CLABSI发生例次数: Array(32).fill("-"),
          CAUTI发生例次数: Array(32).fill("-"),
          有创机械通气的总日数: Array(32).fill("-"),
          住院患者身体约束日数: Array(32).fill("-"),
          II期及以上压疮发生例数: Array(32).fill("-"),
          I期压疮发生例数: Array(32).fill("-"),
          跌倒发生例次数: Array(32).fill("-"),
          跌倒伤害严重度1级例次数: Array(32).fill("-"),
          跌倒伤害严重度2级例次数: Array(32).fill("-"),
          跌倒伤害严重度3级例次数: Array(32).fill("-"),
          跌倒死亡例次数: Array(32).fill("-"),
          跌倒伤害总例次数: Array(32).fill("-"),
        };

        var tableDataInit = JSON.parse(JSON.stringify(tableData));
        // 初始渲染表格
        renderTable();

        //确定 按钮 #query-btn 点击事件 ajax 请求数据
        $("#departcount-btn").on("click", function (event) {
          event.preventDefault(); // 阻止表单的默认提交行为
          var department = $("#department-select").val();
          var date_select = $("#date-select").val();
          console.log("department:", department);
          console.log("date-select:", date_select);

          // 判断start_time是否为空, 为空则提示
          if (date_select == "") {
            layer.alert("请选择月份", { icon: 2, time: 3000 });
            return false;
          }

          // ajax 请求数据
          $.ajax({
            url: "fssy/departmetricscount/getDepartTricsCountData",
            type: "POST",
            data: {
              department, // 科室
              date_select, // 季度
            },
            success: function (res) {
              console.log("success = ", res);

              if (res.msg === "OK") {
                layer.alert("查询成功", { icon: 1 });
              } else {
                layer.alert("查询失败", { icon: 2 });
                return;
              }

              // 表格数据初始化
              tableData = JSON.parse(JSON.stringify(tableDataInit));

              // 更新表格数据
              // tableData["住院患者实际占用床日数"] = res.data.住院患者实际占用床日数 || Array(32).fill(88);
              res = res.data;
              res.forEach((item, index) => {
                tableData.实际开放床数[item.updateDay - 1] = item.beds; //
                tableData.初全院执业护士总人数[item.updateDay - 1] = item.total_nurses_start; //
                tableData.末全院执业护士总人数[item.updateDay - 1] = item.total_nurses_end; //
                tableData.初病区执业护士总人数[item.updateDay - 1] = item.ward_nurses_start; //
                tableData.末病区执业护士总人数[item.updateDay - 1] = item.ward_nurses_end; //
                tableData.岗执业护士上班小时数[item.updateDay - 1] = item.nurse_hours; //
                tableData.导尿管拔管发生例次数[item.updateDay - 1] = item.catheter_count; //
                tableData.胃肠管拔管发生例次数[item.updateDay - 1] = item.gastric_count; //
                tableData.中心导管拔管发生例次数[item.updateDay - 1] = item.central_catheter_coun; //
                tableData.气管导管拔管发生例次数[item.updateDay - 1] = item.tracheal_count; //
                tableData.VAP发生例次数[item.updateDay - 1] = item.vap_count; //
                tableData.CLABSI发生例次数[item.updateDay - 1] = item.clabsi_count; //
                tableData.CAUTI发生例次数[item.updateDay - 1] = item.cauti_count; //
                tableData.有创机械通气的总日数[item.updateDay - 1] = item.vent_days; //
                tableData.住院患者身体约束日数[item.updateDay - 1] = item.restraint_days; //
                tableData.II期及以上压疮发生例数[item.updateDay - 1] = item.stage2_ulcer; //
                tableData.I期压疮发生例数[item.updateDay - 1] = item.stage1_ulcer; //
                tableData.跌倒发生例次数[item.updateDay - 1] = item.falls_count; //
                tableData.跌倒伤害严重度1级例次数[item.updateDay - 1] = item.falls_severity1; //
                tableData.跌倒伤害严重度2级例次数[item.updateDay - 1] = item.falls_severity2; //
                tableData.跌倒伤害严重度3级例次数[item.updateDay - 1] = item.falls_severity3; //
                tableData.跌倒死亡例次数[item.updateDay - 1] = item.falls_death; //
                tableData.跌倒伤害总例次数[item.updateDay - 1] = item.falls_injury; //
              });

              // 遍历 tableData 对象中的值 计算 合计
              Object.values(tableData).forEach((itemArr) => {
                itemArr[itemArr.length - 1] = "-"; // 最后一项填充 "-"
                let itemSum = 0;
                itemArr.forEach((cell) => {
                  cell !== "-" ? (itemSum += parseInt(cell)) : 0;
                });
                // 把itemSum 添加到itemArr的最后一项
                itemArr[itemArr.length - 1] = itemSum;
              });

              // 重新渲染表格
              renderTable();
            },
            error: function (jqXHR, textStatus, errorThrown) {
              console.log(textStatus, errorThrown);
            },
          });
        });

        // 动态渲染表格函数
        function renderTable() {
          var tbody = $("#departcountTable tbody");
          tbody.empty(); // 清空表格内容
          var rowIndex = 0; // 定义行索引
          $.each(tableData, function (key, value) {
            // 创建表格行
            var row = $("<tr>");
            // 判断是否是偶数行（从 0 开始计数）
            if (rowIndex % 2 === 1) {
              // 奇数索引对应表格中的偶数行
              row.addClass("info"); // 添加样式类
            }
            // 添加第一列（项目名称）
            row.append("<td class='text-left'>" + key + "</td>");
            // 添加其余列（数据）
            value.forEach(function (cellData, cellIndex) {
              if (cellIndex === value.length - 1) {
                // 如果是最后一列，添加 class="warning"
                row.append("<td class='text-center warning' style='font-weight:bold;'>" + cellData + "</td>");
              } else {
                row.append("<td class='text-center'>" + cellData + "</td>");
              }
            });
            // 将行添加到表格的 tbody
            tbody.append(row);
            rowIndex++; // 增加行索引
          });
        }

        $("#test-btn").on("click", function (event) {
          event.preventDefault(); // 阻止表单的默认提交行为
          // ajax 请求数据
          $.ajax({
            url: "fssy/areasensitivityount/test",
            type: "POST",
            data: {},
            success: function (res) {
              console.log("success = ", res);
            },
            error: function (jqXHR, textStatus, errorThrown) {
              console.log(textStatus, errorThrown);
            },
          });
        });
      });
    },

    add: function () {
      Controller.api.bindevent();
    },

    edit: function () {
      Controller.api.bindevent();
    },

    api: {
      bindevent: function () {
        Form.api.bindevent($("form[role=form]"));
      },
    },
  };
  return Controller;
});
